#include<iostream>
#include<cstring>
#include<cstdio>
using namespace std;
const int maxk = 1005;
int a,b,k,n,m;
long long xs[maxk];

long long q_mul(long long a,long long b,int mod = 10007){
	long long ans = 0;
	a=a%mod;
	while(b){
		if(b&1){
			b--;
			ans=(ans+a)%mod;
		}
		b/=2;
		a=(a+a)%mod;
	}
	return ans;
}

long long pow_mod(long long a,long long b,int mod = 10007){
	long long ans=1;
	a=a%mod;
	while(b){
		if(b&1){
			ans=q_mul(ans,a);
		}
		b/=2;
		a=q_mul(a,a);
	}
	return ans;
}
int exgcd(int a,int b,int & x,int & y){
	if(b == 0){
		x = 1,y = 0;
		return a;
	}
	int r = exgcd(b, a%b, y, x);
	y = y - (a/b)*x;	
	return r;
}
 
int inv(int a,int n){
	int d,x,y;
	d=exgcd(a,n,x,y);
	return d==1?(x+n)%n:-1;
}


int main(){
	cin>>a>>b>>k>>n>>m;
	xs[0] = 1;
	for(int i=1;i<=k;i++){
		long long b = q_mul(k-i+1,inv(i,10007));
		xs[i]=q_mul(xs[i-1],b);
	}
	long long a1=q_mul(pow_mod(a,n),pow_mod(b,m));
	long long ans=q_mul(a1,xs[k-n]);
	cout<<ans<<endl;
	return 0;
}
